0. Podsumowanie analizy

Celem analizy tego zbioru danych było znalezienie możliwych przyczyn spadku rozmiaru śledzia oceanicznego wyławianego w Europie. Po przejrzeniu danych ze zbioru można zauważyć, że braki danych nie występują w kolumnach length, recr i cumf. Reszta kolumn powinna zawierać stałe dane dla danego połowu, wystarczyło więc pogrupować dane po połowach. Nie było to takie oczywiste, bo mimo chronologii danych, zdarzały się miejsca, gdzie dane z poszczególnych połowów się przeplatały. Konieczne było obliczenie numeru roku dla każdego połowu, a następnie grupowanie po nim, aby obliczyć średnią długość w danym roku.

Po wyznaczeniu korelacji między poszczególnymi atrybutami można zauważyć, że największą korelację do długości ma atrybut sst mówiący o temperaturze przy powierzchni wody. Korelacja ta jest ujemna, a więc wraz ze wzrostem temperatury maleje średnia długość śledzia. Dalej znaczącymi atrybutami wydają się być nao z ujemną korelacją i fbar z dodatnią czyli odpowiednio oscylacja północnoatlantycka i natężenie połowów w regionie.

Na podstawie analizy ważności atrybutów modelu regresji dostajemy podobne odpowiedzi. Czyli, że głównym czynnikiem wpływającym na długość śledzia jest sst. Na drugiej pozycji pojawia się recr oznaczający roczny narybek.

Na koniec, aby lepiej zauważyć te zależności narysowałem wykresy dla znormalizowanych atrybutów length i sst.

Jak widać na stworzonym wykresie w dużej mierze wzrostowi długości śledzia odpowiada zmniejszenie się sst. Można przypuszczać, że oddziaływanie zarówno sst działa na długość śledzia z pewnym opóźnieniem, stąd pewne nieścisłości w wykresie.

1. Biblioteki

library(dplyr)
library(ggplot2)
library(gganimate)
library(corrplot)
library(caret)
library(mlbench)
library(randomForest)
library(Metrics)

2. Powtarzalność wyników

set.seed(2137)

3. Wczytanie danych z pliku

raw_data = read.csv(url("http://www.cs.put.poznan.pl/dbrzezinski/teaching/sphd/sledzie.csv"), na.strings = "?")

Nazwy kolumn:

##  [1] "X"      "length" "cfin1"  "cfin2"  "chel1"  "chel2"  "lcop1"  "lcop2" 
##  [9] "fbar"   "recr"   "cumf"   "totaln" "sst"    "sal"    "xmonth" "nao"

Liczba kolumn:

## [1] 16

Liczba wierszy:

## [1] 52582

Jak wyglądają dane?

4. Przetworzenie brakujących danych

## [1] "Liczba niepustych wartości length"
## [1] 52582
## [1] "Liczba niepustych wartości recr"
## [1] 52582
## [1] "Liczba niepustych wartości cumf"
## [1] 52582
clean_data <- raw_data_year %>% mutate(
  cfin1=data_by_year$cfin1[rok],
  cfin2=data_by_year$cfin2[rok],
  chel1=data_by_year$chel1[rok],
  chel2=data_by_year$chel2[rok],
  lcop1=data_by_year$lcop1[rok],
  lcop2=data_by_year$lcop2[rok],
  fbar=data_by_year$fbar[rok],
  recr=data_by_year$recr[rok],
  cumf=data_by_year$cumf[rok],
  totaln=data_by_year$totaln[rok],
  sst=data_by_year$sst[rok],
  sal=data_by_year$sal[rok],
  nao=data_by_year$nao[rok]
  )
## [1] "Rozmiar danych po zgrupowaniu po miesiącach i latach"
## [1] 528

5. Rozmiar zbioru i podstawowe statystyki

Liczba kolumn po przetworzeniu brakujących danych:

## [1] 17

Liczba wierszy po przetworzeniu brakujących danych:

## [1] 52582

Jak wyglądają dane po przetworzeniu brakujących danych?

Podstawowe statystyki na temat danych?

##        X             length         cfin1             cfin2        
##  Min.   :    0   Min.   :19.0   Min.   : 0.0000   Min.   : 0.0000  
##  1st Qu.:13145   1st Qu.:24.0   1st Qu.: 0.0000   1st Qu.: 0.2778  
##  Median :26290   Median :25.5   Median : 0.1333   Median : 0.7012  
##  Mean   :26290   Mean   :25.3   Mean   : 0.5564   Mean   : 2.0297  
##  3rd Qu.:39436   3rd Qu.:26.5   3rd Qu.: 0.3603   3rd Qu.: 1.7936  
##  Max.   :52581   Max.   :32.5   Max.   :37.6667   Max.   :19.3958  
##      chel1            chel2            lcop1              lcop2       
##  Min.   : 0.000   Min.   : 5.238   Min.   :  0.3074   Min.   : 7.849  
##  1st Qu.: 2.469   1st Qu.:13.427   1st Qu.:  2.8102   1st Qu.:17.808  
##  Median : 4.327   Median :21.435   Median :  7.0000   Median :24.859  
##  Mean   : 9.087   Mean   :21.224   Mean   : 11.6367   Mean   :28.432  
##  3rd Qu.:11.500   3rd Qu.:27.193   3rd Qu.: 12.4959   3rd Qu.:37.232  
##  Max.   :75.000   Max.   :57.706   Max.   :115.5833   Max.   :68.736  
##       fbar             recr              cumf             totaln       
##  Min.   :0.0680   Min.   : 140515   Min.   :0.06833   Min.   : 144137  
##  1st Qu.:0.2270   1st Qu.: 360061   1st Qu.:0.14809   1st Qu.: 306068  
##  Median :0.3320   Median : 421391   Median :0.23191   Median : 539558  
##  Mean   :0.3304   Mean   : 520366   Mean   :0.22981   Mean   : 515007  
##  3rd Qu.:0.4560   3rd Qu.: 724151   3rd Qu.:0.29803   3rd Qu.: 730351  
##  Max.   :0.8490   Max.   :1565890   Max.   :0.39801   Max.   :1015595  
##       sst             sal            xmonth            nao          
##  Min.   :12.77   Min.   :35.40   Min.   : 1.000   Min.   :-4.89000  
##  1st Qu.:13.60   1st Qu.:35.51   1st Qu.: 5.000   1st Qu.:-1.89000  
##  Median :13.86   Median :35.51   Median : 8.000   Median : 0.20000  
##  Mean   :13.87   Mean   :35.51   Mean   : 7.258   Mean   :-0.08148  
##  3rd Qu.:14.16   3rd Qu.:35.52   3rd Qu.: 9.000   3rd Qu.: 1.70000  
##  Max.   :14.73   Max.   :35.61   Max.   :12.000   Max.   : 5.08000  
##       rok       
##  Min.   : 1.00  
##  1st Qu.:10.00  
##  Median :19.00  
##  Mean   :21.97  
##  3rd Qu.:34.00  
##  Max.   :52.00

6. Szczegółowa analiza wartości atrybutów

7. Korelacja między zmiennymi

##             length       cfin1       cfin2       chel1       chel2       lcop1
## length  1.00000000 0.062288931 0.097633000 0.198463309 -0.01470777 0.211597751
## cfin1   0.06228893 1.000000000 0.089828814 0.005204459  0.21070052 0.035357685
## cfin2   0.09763300 0.089828814 1.000000000 0.032108816  0.30639121 0.001069555
## chel1   0.19846331 0.005204459 0.032108816 1.000000000  0.33570690 0.961351396
## chel2  -0.01470777 0.210700516 0.306391211 0.335706897  1.00000000 0.229824824
## lcop1   0.21159775 0.035357685 0.001069555 0.961351396  0.22982482 1.000000000
##             lcop2       fbar          recr         cumf      totaln
## length 0.04865546  0.2543674 -0.0084518109  0.008372645  0.09640552
## cfin1  0.17793616 -0.2016668  0.0023623392 -0.201754791  0.23374102
## cfin2  0.65278054  0.1524730 -0.1007283899  0.336112804 -0.21528555
## chel1  0.30731613  0.1728284 -0.0982736790  0.105326705  0.08643993
## chel2  0.88595774  0.0261385  0.0006312851  0.262565869 -0.37565487
## lcop1  0.21604681  0.1085129 -0.0607442045  0.031309354  0.17468256
##                 sst         sal      xmonth          nao
## length -0.451828201  0.03440361 0.010678033 -0.262642635
## cfin1   0.075009336  0.11403355 0.009522869 -0.076442362
## cfin2  -0.238421621 -0.08200241 0.013756275 -0.007919034
## chel1  -0.212143839 -0.20695273 0.047632402 -0.492407881
## chel2   0.009464675 -0.22299948 0.073381255 -0.058594025
## lcop1  -0.262277540 -0.16786296 0.024323413 -0.538312632

8. Zmiana rozmiaru śledzia w czasie

Zmiana średniego rozmiaru śledzia w kolejnych miesiącach

Zmiana średniego rozmiaru śledzia w kolejnych latach

9. Predykcja długości śledzia

## Miara rmse:  1.196729
## Miara r^2:  0.4779853

10. Analiza ważności atrybutów

varImp(fit, scale = FALSE)
## rf variable importance
## 
##        Overall
## sst    20779.7
## recr    5779.7
## cfin1   4985.0
## totaln  4761.4
## fbar    3807.1
## nao     2221.9
## lcop1   2144.9
## cfin2   1666.6
## cumf    1663.8
## sal     1354.8
## chel2   1346.5
## chel1   1100.3
## lcop2    721.4

11. Porównanie zmian Length i Sst